(function($){
    $.fn.extend({ 
        //plugin name - paginador
        paginador: function(options) {
                
            return this.each(function() {

               var tabla = $(this);               
               var tfoot = $("tfoot", tabla);
               var tbody = $("tbody", tabla);
               var rows = $("tbody tr", tabla);
               var cantidadRows;
               var stringPaginador = '<tr><td id="cantidadPaginador" colspan="2">Mostrando 0 carpetas.</td><td colspan="3"><a id="paginadorAnterior" >&lt;&lt; anterior</a> | <a id="paginadorSiguiente" >siguiente &gt;&gt;</a></td></tr>';

               tfoot.html(stringPaginador);
               
               var cantidadPaginador = $("#cantidadPaginador");
               var paginadorSig = $("#paginadorSiguiente");
               var paginadorAnt = $("#paginadorAnterior");
               
               function armarSelect(cantidad) {
            	   
            	   var stringCantidad='Mostrando <select><option>1</option>';
            	   
            	   if(cantidad<2) {
            			stringCantidad = 'Mostrando ' + cantidad + ' carpetas.';
            			if (cantidad != 1) return stringCantidad;
            			else {
            				stringCantidad = 'Mostrando 1 carpeta.';
            				return stringCantidad;
            			}
            		} else {
            			for(var indice = 2; indice<cantidad; indice+=2) {
            				stringCantidad+= '<option>' + indice + '</option>';
            	        }
           		        stringCantidad+= '<option>' + cantidad + '</option></select> de ' + cantidad + ' carpetas.';
           		        return stringCantidad;	
            	    }
            	}
               
               tabla.bind("update", function(){
            	   rows = $("tbody tr", tabla);
            	   firstRowVal = $("td:first", rows).html();
            	   cantidadRows = rows.length;
            	   if (cantidadRows == 1 && firstRowVal == '-') cantidadRows = 0;
            	   cantidadPaginador.html(armarSelect(cantidadRows));
                   $("tbody tr:gt(0)",tabla).toggle();
               });
               
               $(document).on("change", "select", function(){
            	   
            	   var selectVal = $("select",tabla).val();
            	   
            	   $("tbody tr:lt("+selectVal+")",tabla).show();
            	   $("tbody tr:gt("+(selectVal-1)+")",tabla).hide();
            	    
               });
               
               $(paginadorSig).bind("click", function() {
            	   
            	   var selectVal = parseInt($("select",tabla).val());
            	   var total = $("select option:last").html();
            	   var indice = parseInt($("tbody tr:visible:last",tabla).index())+1;
            	   
            	   if ((indice)==total) {
            		   inf = 0;
            	   } else {
            		   inf = indice;
            	   }
            	   sup = inf + selectVal;
            	   
            	   $("tbody tr:visible",tabla).hide();
            	   $("tbody tr",tabla).slice(inf,sup).show();
            	      
               });
               
               $(paginadorAnt).bind("click", function() {

            	   var selectVal = parseInt($("select",tabla).val());
            	   var total = $("select option:last").html();
            	   var indice = parseInt($("tbody tr:visible:last",tabla).index())+1;
            	   
            	   if (indice==1) {
            		   sup = total;
            	   } else {
            		   sup = indice-1;
            	   }
            	   inf = sup - selectVal;
            	   
            	   $("tbody tr:visible",tabla).hide();
            	   $("tbody tr",tabla).slice(inf,sup).show();
            	      
               });  
            	  
            });
        }
    });
})(jQuery);